package com.spic.business.accident.feedback.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.spic.business.common.core.domain.BasicEntity;
import com.spic.common.core.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 经验反馈单对象 accident_experence_back
 *
 * @author spic
 * @date 2021-12-20
 */
public class AccidentExperenceBack extends BasicEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 隐患排查下达id
     */
    @Excel(name = "隐患排查下达id")
    private Long hiddenGovernanceId;

    //事故分析报告id
    private Long analysisReportId;

    /**
     * 标题
     */
    @Excel(name = "标题")
    private String title;

    /**
     * 单位名称
     */
    @Excel(name = "单位名称")
    private String unit;

    /**
     * 编号
     */
    @Excel(name = "编号")
    private String number;

    /**
     * 反馈类别
     */
    @Excel(name = "反馈类别")
    private String feedBack;

    /**
     * 来源
     */
    @Excel(name = "来源")
    private String source;

    /**
     * 报告级别
     */
    @Excel(name = "报告级别")
    private String reportLevel;

    /**
     * 产业类别
     */
    @Excel(name = "产业类别")
    private String industryCategory;

    /**
     * 领域类别
     */
    @Excel(name = "领域类别")
    private String domainCategory;

    /**
     * 信息描述
     */
    @Excel(name = "信息描述")
    private String infoDescription;

    /**
     * 原因分析
     */
    @Excel(name = "原因分析")
    private String reasonAnalysis;

    /**
     * 验证关闭
     */
    @Excel(name = "验证关闭")
    private String vertifyClose;

    /**
     * 编制人
     */
    @Excel(name = "编制人")
    private String drafter;

    /**
     * 编制时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "编制时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date draftTime;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private String auditor;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;

    /**
     * 批准人
     */
    @Excel(name = "批准人")
    private String approver;

    /**
     * 批准时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "批准时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date approveTime;

    /**
     * 支持文件-基础信息
     */
    private String baseInfo;

    /**
     * 支持文件-图片
     */
    private String baeImages;

    /**
     * 支持文件-学习信息
     */
    private String learnInfo;

    /**
     * 支持文件-学习图片
     */
    private String learnImages;

    /**
     * 支持文件-其他信息
     */
    private String otherInfo;

    /**
     * 支持文件-其他图片
     */
    private String otherImages;

    /**
     * 自检自查隐患信息描述
     */
    @TableField(exist = false)
    private String hiddenInfo;

    /**
     * 经验反馈行动明细信息
     */
    private List<AccidentExperecnceBackAction> accidentExperecnceBackActionList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setHiddenGovernanceId(Long hiddenGovernanceId) {
        this.hiddenGovernanceId = hiddenGovernanceId;
    }

    public Long getHiddenGovernanceId() {
        return hiddenGovernanceId;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnit() {
        return unit;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

    public void setFeedBack(String feedBack) {
        this.feedBack = feedBack;
    }

    public Long getAnalysisReportId() {
        return analysisReportId;
    }

    public void setAnalysisReportId(Long analysisReportId) {
        this.analysisReportId = analysisReportId;
    }

    public String getFeedBack() {
        return feedBack;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getSource() {
        return source;
    }

    public void setReportLevel(String reportLevel) {
        this.reportLevel = reportLevel;
    }

    public String getReportLevel() {
        return reportLevel;
    }

    public void setIndustryCategory(String industryCategory) {
        this.industryCategory = industryCategory;
    }

    public String getIndustryCategory() {
        return industryCategory;
    }

    public void setDomainCategory(String domainCategory) {
        this.domainCategory = domainCategory;
    }

    public String getDomainCategory() {
        return domainCategory;
    }

    public void setInfoDescription(String infoDescription) {
        this.infoDescription = infoDescription;
    }

    public String getInfoDescription() {
        return infoDescription;
    }

    public void setReasonAnalysis(String reasonAnalysis) {
        this.reasonAnalysis = reasonAnalysis;
    }

    public String getReasonAnalysis() {
        return reasonAnalysis;
    }

    public void setVertifyClose(String vertifyClose) {
        this.vertifyClose = vertifyClose;
    }

    public String getVertifyClose() {
        return vertifyClose;
    }

    public void setDrafter(String drafter) {
        this.drafter = drafter;
    }

    public String getDrafter() {
        return drafter;
    }

    public void setDraftTime(Date draftTime) {
        this.draftTime = draftTime;
    }

    public Date getDraftTime() {
        return draftTime;
    }

    public void setAuditor(String auditor) {
        this.auditor = auditor;
    }

    public String getAuditor() {
        return auditor;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }

    public String getApprover() {
        return approver;
    }

    public void setApproveTime(Date approveTime) {
        this.approveTime = approveTime;
    }

    public Date getApproveTime() {
        return approveTime;
    }

    public void setBaseInfo(String baseInfo) {
        this.baseInfo = baseInfo;
    }

    public String getBaseInfo() {
        return baseInfo;
    }

    public void setBaeImages(String baeImages) {
        this.baeImages = baeImages;
    }

    public String getBaeImages() {
        return baeImages;
    }

    public void setLearnInfo(String learnInfo) {
        this.learnInfo = learnInfo;
    }

    public String getLearnInfo() {
        return learnInfo;
    }

    public void setLearnImages(String learnImages) {
        this.learnImages = learnImages;
    }

    public String getLearnImages() {
        return learnImages;
    }

    public void setOtherInfo(String otherInfo) {
        this.otherInfo = otherInfo;
    }

    public String getOtherInfo() {
        return otherInfo;
    }

    public void setOtherImages(String otherImages) {
        this.otherImages = otherImages;
    }

    public String getOtherImages() {
        return otherImages;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public List<AccidentExperecnceBackAction> getAccidentExperecnceBackActionList() {
        return accidentExperecnceBackActionList;
    }

    public void setAccidentExperecnceBackActionList(List<AccidentExperecnceBackAction> accidentExperecnceBackActionList) {
        this.accidentExperecnceBackActionList = accidentExperecnceBackActionList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("hiddenGovernanceId", getHiddenGovernanceId())
                .append("title", getTitle())
                .append("unit", getUnit())
                .append("number", getNumber())
                .append("feedBack", getFeedBack())
                .append("source", getSource())
                .append("reportLevel", getReportLevel())
                .append("industryCategory", getIndustryCategory())
                .append("domainCategory", getDomainCategory())
                .append("infoDescription", getInfoDescription())
                .append("reasonAnalysis", getReasonAnalysis())
                .append("vertifyClose", getVertifyClose())
                .append("drafter", getDrafter())
                .append("draftTime", getDraftTime())
                .append("auditor", getAuditor())
                .append("auditTime", getAuditTime())
                .append("approver", getApprover())
                .append("approveTime", getApproveTime())
                .append("baseInfo", getBaseInfo())
                .append("baeImages", getBaeImages())
                .append("learnInfo", getLearnInfo())
                .append("learnImages", getLearnImages())
                .append("otherInfo", getOtherInfo())
                .append("otherImages", getOtherImages())
                .append("deptId", getDeptId())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("accidentExperecnceBackActionList", getAccidentExperecnceBackActionList())
                .toString();
    }

    public String getHiddenInfo() {
        return hiddenInfo;
    }

    public void setHiddenInfo(String hiddenInfo) {
        this.hiddenInfo = hiddenInfo;
    }
}
